package cn.jinjimi.domain.store;

import cn.jinjimi.domain.data.dto.MemberStatisticsDTO;
import cn.jinjimi.domain.data.dto.SiteStatusDTO;
import cn.jinjimi.domain.data.dto.VerifyResultDTO;
import cn.jinjimi.app.entity.Company;
import cn.jinjimi.app.entity.CompanyType;
import cn.jinjimi.app.entity.HonorBean;
import cn.jinjimi.app.entity.SiteInfo;
import cn.jinjimi.app.entity.StandTheme;
import cn.jinjimi.app.entity.ThemePreview;
import cn.jinjimi.app.entity.UserProfiles;
import cn.jinjimi.app.entity.UserProfit;

import org.json.JSONObject;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import retrofit2.Response;

/**
 * Created by zhenhua on 16/7/7.
 */
public interface UserStore {

    void save(UserProfiles profiles);

    UserProfiles create(String phone, String pwd, String name, String unionId, String openId, String companyName, String companyId) throws IOException;

    void fetchProfile(String ssoid);

    void updateProfile(long ssoid, JSONObject item);

    UserProfiles getProfile(long ssoid);

    boolean updateProfile(Map<String, String> properties) throws IOException;

    boolean updateProfile(JSONObject jsonObject) throws IOException;

    UserProfiles setRealName(String name) throws IOException;

    SiteStatusDTO getAgentSiteStatus(int type) throws IOException;

    SiteInfo getSiteInfo() throws IOException;

    UserProfit getProfit() throws IOException;

    boolean setSiteTheme(String id) throws IOException;

    StandTheme.Theme getCurrentSiteTheme() throws IOException;

    ThemePreview getThemePreview(String name) throws IOException;

    List<StandTheme.Theme> getThemes() throws IOException;

    boolean activateSite() throws IOException;

    List<CompanyType> getCompanyTypes() throws IOException;

    List<Company> getCompanies(String type) throws IOException;

    boolean deleteHonor(String id) throws IOException;

    List<HonorBean> getHonors() throws IOException;

    UserProfiles getProfile() throws IOException;
}
